package com.example.practice20240805;

import android.content.Context;
import android.content.res.TypedArray;  
import android.graphics.Color;  
import android.os.Bundle;  
import android.util.AttributeSet;  

import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatButton;

public class CustomButton extends AppCompatButton {
  
    // 定义自定义属性  
    private static final int[] ATTRS = new int[]{  
            android.R.attr.background, // 示例，可以添加更多自定义属性  
            R.attr.customColor // 自定义颜色属性  
    };  
  
    // 在res/values/attrs.xml中定义customColor  
  
    public CustomButton(Context context) {  
        super(context);  
        init(null, 0);  
    }  
  
    public CustomButton(Context context, @Nullable AttributeSet attrs) {  
        super(context, attrs);  
        init(attrs, 0);  
    }  
  
    public CustomButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {  
        super(context, attrs, defStyleAttr);  
        init(attrs, defStyleAttr);  
    }  
  
    private void init(@Nullable AttributeSet attrs, int defStyleAttr) {  
        if (attrs != null) {  
            TypedArray a = getContext().obtainStyledAttributes(attrs, ATTRS, defStyleAttr, 0);  
            int customColor = a.getColor(1, Color.BLUE); // 第二个参数是自定义属性的索引  
            setTextColor(customColor); // 示例：将文本颜色设置为自定义颜色  
            a.recycle();  
        }  
    }  
}